package com.lap.framework.common.tool;

import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import java.util.Optional;
import java.util.stream.Collectors;
import lombok.experimental.UtilityClass;
import org.apache.commons.lang3.StringUtils;

@UtilityClass
public class IntStrategy {

  /**
   * 数字集合转换到字符串，默认逗号分割
   *
   * @param dataList 数字集合
   * @return 字符串
   */
  public static String toString(List<Integer> dataList) {
    return Optional.ofNullable(dataList).orElse(Collections.emptyList()).stream()
        .map(String::valueOf)
        .collect(Collectors.joining(","));
  }

  /**
   * 字符串转换到数字集合
   *
   * @param param 入参
   * @return 集合
   */
  public static List<Integer> toList(String param) {
    if (StringUtils.isBlank(param)) {
      return Collections.emptyList();
    }
    return Arrays.stream(param.split(","))
        .map(String::trim)
        .filter(s -> !s.isEmpty()) // 关键修复：过滤所有空字符串
        .map(Integer::valueOf)
        .toList();
  }

  /**
   * 获取集合最后一个元素
   *
   * @param dataList 集合
   * @return 数字
   */
  public static Integer getLast(List<Integer> dataList) {
    if (dataList == null || dataList.isEmpty()) return 0;
    return dataList.get(dataList.size() - 1);
  }
}
